package com.example.mantenimientovehiculo.widget;

import com.example.mantenimientovehiculo.R;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;

public class WidgetAdd extends AppWidgetProvider {
	
	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		super.onUpdate(context, appWidgetManager, appWidgetIds);
		// Actualizar el widget
		// ...
		// Iteramos la lista de widgets en ejecucion
		for (int i = 0; i < appWidgetIds.length; i++) {
			// ID del widget actual
			int widgetId = appWidgetIds[i];
			// Actualizamos el widget actual
			actualizarWidget(context, appWidgetManager, widgetId);
		}
	}

	private void actualizarWidget(Context context,
			AppWidgetManager appWidgetManager, int widgetId) {
		
		// Obtenemos la lista de controles del widget actual, pongo el evento del boton y inflo el layout principal
		RemoteViews controles = new RemoteViews(context.getPackageName(),
				R.layout.widgetadd);
		
		Intent intent = new Intent(context, WidgetAdd.class);
		intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
		intent.setAction("mantenimientovehiculo.widget.WIDGETADD");
		
		PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
				widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
		controles.setOnClickPendingIntent(R.id.btnWdgAddNuevoRegistro,
				pendingIntent);

		// //actualizamos el widget
		appWidgetManager.updateAppWidget(widgetId, controles);
	}

	@Override
	public void onReceive(Context context, Intent intent) {

		if (intent.getAction().equals("mantenimientovehiculo.widget.WIDGETADD")) {			
			// Obtenemos el ID del widget a actualizar
			int widgetId = intent.getIntExtra(
					AppWidgetManager.EXTRA_APPWIDGET_ID,
					AppWidgetManager.INVALID_APPWIDGET_ID);

			if (widgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
				// Obtenemos el widget manager de nuestro contexto
				AppWidgetManager widgetManager = AppWidgetManager
						.getInstance(context);
				// Añado el codigo para que cargue el layout del form
				RemoteViews controles = new RemoteViews(
						context.getPackageName(), R.layout.widgetaddformkm);
								
				widgetManager.updateAppWidget(widgetId, controles);
			}
		}
		super.onReceive(context, intent);
	}
}
